package cn.iocoder.yudao.module.promotion.convert.banner;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.promotion.controller.admin.banner.vo.BannerCreateReqVO;
import cn.iocoder.yudao.module.promotion.controller.admin.banner.vo.BannerRespVO;
import cn.iocoder.yudao.module.promotion.controller.admin.banner.vo.BannerUpdateReqVO;
import cn.iocoder.yudao.module.promotion.dal.dataobject.banner.BannerDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * 横幅转换
 *
 * @author huangweidong
 * @date 2023/05/09
 */
@Mapper
public interface BannerConvert {

    BannerConvert INSTANCE = Mappers.getMapper(BannerConvert.class);

    /**
     * 转换列表
     *
     * @param list 列表
     * @return {@code List<BannerRespVO>}
     */
    List<BannerRespVO> convertList(List<BannerDO> list);

    /**
     * 转换分页
     *
     * @param pageResult 分页结果
     * @return {@code PageResult<BannerRespVO>}
     */
    PageResult<BannerRespVO> convertPage(PageResult<BannerDO> pageResult);

    /**
     * 转换
     *
     * @param banner 横幅
     * @return {@code BannerRespVO}
     */
    BannerRespVO convert(BannerDO banner);

    /**
     * 转换
     *
     * @param createReqVO 创建请求VO
     * @return {@code BannerDO}
     */
    BannerDO convert(BannerCreateReqVO createReqVO);

    /**
     * 转换
     *
     * @param updateReqVO 更新请求VO
     * @return {@code BannerDO}
     */
    BannerDO convert(BannerUpdateReqVO updateReqVO);

}
